<?php

/**
 * favorites actions.
 *
 * @package    sf_sandbox
 * @subpackage favorites
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 12479 2008-10-31 10:54:40Z fabien $
 */
class favoritesActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeMy(sfWebRequest $request)
  {
      
  	 
  	   ////Проверка на регистрацию
    	if(!$this->getUser()->isAuthenticated())
		  	{
		  	 $this->getUser ()->setFlash ( 'error', 'Только для зарегистрированных пользователей' );
		  	$this->redirect('@registration');
		  	}
  	   ///
  	
    	if(!$request->getParameter('page'))
  	    {
  	    	$this->page =1;
  	    }
  	    else 
  	    {
  	    	$this->page=$request->getParameter('page');
  	    }
  	
  	    $c = new Criteria();
  	    $c->add(FavoritePeer::USER_ID,$this->getUser()->getAttribute( 'user_id', null, 'sfGuardSecurityUser' ));
  	    $c->addDescendingOrderByColumn(FavoritePeer::ID);
   		$pager = new sfPropelPager('Favorite', sfConfig::get('app_favorite_perpage'));
        $pager->setCriteria($c);
        $pager->setPeerMethod('doSelect');        
        $pager->setPage($this->page);
        $pager->init();
        $this->fav = $pager;
		 //Кидаем пользователя в layout
	     $this->getRequest()->setAttribute('v', $this->getUser()->getProfile());
		////        
        
  }
  
  public function executeMe(sfWebRequest $request)
  {
  	 
  	   ////Проверка на регистрацию
    	if(!$this->getUser()->isAuthenticated())
		  	{
		  	 $this->getUser ()->setFlash ( 'error', 'Только для зарегистрированных пользователей' );
		  	$this->redirect('@registration');
		  	}
  	   ///
  	
  	    if(!$request->getParameter('page'))
  	    {
  	    	$this->page =1;
  	    }
  	    else 
  	    {
  	    	$this->page=$request->getParameter('page');
  	    }
  	    
  	    $c = new Criteria();
  	    $c->add(FavoritePeer::FAV_ID,$this->getUser()->getAttribute( 'user_id', null, 'sfGuardSecurityUser' ));
  	    $c->addDescendingOrderByColumn(FavoritePeer::ID);
   		$pager = new sfPropelPager('Favorite', sfConfig::get('app_favorite_perpage'));
        $pager->setCriteria($c);
        $pager->setPeerMethod('doSelect');        
        $pager->setPage($this->page);
        $pager->init();
        $this->fav = $pager;   
       	 //Кидаем пользователя в layout
	     $this->getRequest()->setAttribute('v', $this->getUser()->getProfile());
		////
  }
  
  public function executeAdd(sfWebRequest $request)
  {
        ////Проверка на заполненность профайла
  	if(!$this->getUser()->getProfile()->getFullProfile())
  	{
  	 $this->getUser ()->setFlash ( 'error', __('Вы не полностью заполнили профайл') );
  	 $this->redirect('profile/step2');
  	}
        ////
  	   ////Проверка на регистрацию
    	if(!$this->getUser()->isAuthenticated())
		  	{
		  	 $this->getUser ()->setFlash ( 'error', 'Только для зарегистрированных пользователей' );
		  	$this->redirect('@registration');
		  	}
  	   ///
  	   
    if($request->getParameter('id'));
    $user = sfGuardUserPeer::retrieveByPK($request->getParameter('id'));    
    $this->forward404Unless($user);
    
    $c = new  Criteria();
    $c->add(FavoritePeer::FAV_ID,$request->getParameter('id'));
    $c->addAnd(FavoritePeer::USER_ID,$this->getUser()->getAttribute( 'user_id', null, 'sfGuardSecurityUser' ));
    $f = FavoritePeer::doCount($c);
    if($f==0)
    {
    
    	$fav = new Favorite();
    	$fav->setUserId($this->getUser()->getAttribute( 'user_id', null, 'sfGuardSecurityUser' ));
    	$fav->setFavId($request->getParameter('id'));
    	$fav->save();
    }
    $this->redirect('@fav_my');
  }
  
  
  public function executeDelete(sfWebRequest $request)
  {
  	  	
  	   ////Проверка на регистрацию
    	if(!$this->getUser()->isAuthenticated())
		  	{
		  	 $this->getUser ()->setFlash ( 'error', 'Только для зарегистрированных пользователей' );
		  	$this->redirect('@registration');
		  	}
  	   ///
  	   
     $fav = FavoritePeer::retrieveByPK($request->getParameter('id'));
     if($fav)
     {
     if($fav->getUserId()==$this->getUser()->getAttribute( 'user_id', null, 'sfGuardSecurityUser' ))
     $fav->delete();
     }
     $this->redirect('favorites/my');
     
  }
  
  
}
